//内置方法操作动画播放、暂停、销毁
//扩展
//匿名函数
//lambda表达式
//委托与事件
using System;
using System.Threading.Tasks;
using DG.Tweening;
using UnityEngine;

public class DOTweenFunction : MonoBehaviour
{
    // Start is called before the first frame update
    async void Start()
    {
        // transform.DOMoveX(5, 1).OnComplete(() => { Debug.Log("动画结束时调用");});
        // transform.DOMoveX(5, 1).OnKill(() => { Debug.Log("动画杀死时调用");});
        // transform.DOMoveX(5, 1).OnPlay(() => { Debug.Log("动画播放时调用");});
        // transform.DOMoveX(5, 1).OnPause(() => { Debug.Log("动画暂停时调用");});
        // transform.DOMoveX(5, 1).OnStart(() => { Debug.Log("动画开始时调用");});
        // transform.DOMoveX(5, 1).OnStepComplete(() => { Debug.Log("动画每步完成时调用");});
        // transform.DOMoveX(5, 1).OnUpdate(() => { Debug.Log("动画每帧完成时调用");});
        // transform.DOMoveX(5, 1).OnRewind(() => { Debug.Log("动画每步骤完成时调用");});
        
        //沿用旧版Tween调用
        transform.DOMoveX(5, 1);
        await Task.Delay(TimeSpan.FromSeconds(1));
        transform.DOPlay();     //播放
        transform.DOPause();    //暂停播放
        transform.DORestart();  //重新播放
        transform.DORewind();   //倒播
        transform.DOSmoothRewind(); //平滑倒播
        transform.DOKill();     //销毁动画
        transform.DOFlip();     //动画倒播，并返回倒初始值，组合播放时用
        transform.DOGoto(1, true); //跳转到制定帧数，组合播放时用
        transform.DOPlayBackwards();    //动画回播，组合播放时用
        transform.DOTogglePause();  //动画处于暂停时被调用就播放，处于播放时被调用就暂停

    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
